package com.jilijili.pojo;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 用户表
 *
 * @TableName users
 */
@TableName(value = "users")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@Builder()
@ApiModel(value = "com.jilijili.pojo.Users", description = "用户实体类")
public class Users implements Serializable {
    /**
     *
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 手机号
     */
    @TableField(value = "mobile")
    private String mobile;

    /**
     * 昵称，媒体号
     */
    @TableField(value = "nickname")
    private String nickname;

    /**
     * 慕课号，类似头条号，抖音号，公众号，唯一标识，需要限制修改次数，比如终生1次，每年1次，每半年1次等，可以用于付费修改。
     */
    @TableField(value = "imooc_num")
    private String imoocNum;

    /**
     * 头像
     */
    @TableField(value = "face")
    private String face;

    /**
     * 性别 1:男  0:女  2:保密
     */
    @TableField(value = "sex")
    private Integer sex;

    /**
     * 生日
     */
    @TableField(value = "birthday")
    private Date birthday;

    /**
     * 国家
     */
    @TableField(value = "country")
    private String country;

    /**
     * 省份
     */
    @TableField(value = "province")
    private String province;

    /**
     * 城市
     */
    @TableField(value = "city")
    private String city;

    /**
     * 区县
     */
    @TableField(value = "district")
    private String district;

    /**
     * 简介
     */
    @TableField(value = "description")
    private String description;

    /**
     * 个人介绍的背景图
     */
    @TableField(value = "bg_img")
    private String bgImg;

    /**
     * 慕课号能否被修改，1：默认，可以修改；0，无法修改
     */
    @TableField(value = "can_imooc_num_be_updated")
    private Integer canImoocNumBeUpdated;

    /**
     * 创建时间 创建时间
     */
    @TableField(value = "created_time", fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    /**
     * 更新时间 更新时间
     */
    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}